package com.aaa.service.scl.impl;

import com.aaa.dao.scl.ViewTestResultSclDao;
import com.aaa.entity.PageSortEntity;
import com.aaa.entity.mht.TestResultMht;
import com.aaa.entity.scl.TestResultScl;
import com.aaa.entity.scl.ViewTestResultScl;
import com.aaa.service.scl.ViewTestResultSclService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * (ViewTestResultScl)表服务实现类
 *
 * @author makejava
 * @since 2022-09-06 08:36:46
 */
@Service("viewTestResultSclService")
public class ViewTestResultSclServiceImpl implements ViewTestResultSclService {
    @Resource
    private ViewTestResultSclDao viewTestResultSclDao;

    /**
     * 通过ID查询单条数据
     *
     * @param
     * @return 实例对象
     */


    @Override
    public List<ViewTestResultScl> queryAllById(ViewTestResultScl viewTestResultScl) {
        List<ViewTestResultScl> viewTestResultScls = viewTestResultSclDao.queryAllById(viewTestResultScl);
        return viewTestResultScls;
    }


    /**
     * 分页查询
     *
     * @param pageSortEntity 筛选条件
     * @return 查询结果
     */


    @Override
    public Page queryByPage(PageSortEntity pageSortEntity, ViewTestResultScl viewTestResultScl) {
        //分页
        PageHelper.startPage(pageSortEntity.getPage(), pageSortEntity.getLimit(), pageSortEntity.getOrderString());
        List<ViewTestResultScl> viewTestResultScls = viewTestResultSclDao.queryAllByLimit(viewTestResultScl);
        Page pageResult = (Page) viewTestResultScls;
        return pageResult;
    }

    @Override
    public Page queryTestResultById(PageSortEntity pageSortEntity, TestResultScl testResultScl) {
        PageHelper.startPage(pageSortEntity.getPage(), pageSortEntity.getLimit(), pageSortEntity.getOrderString());
        List<TestResultScl> testResultScls = viewTestResultSclDao.queryTestResultById(testResultScl);
        Page pageResult = (Page) testResultScls;
        return pageResult;
    }

    @Override
    public Map queryResultToReport() {
        ViewTestResultScl viewTestResultScl = new ViewTestResultScl();
        List<ViewTestResultScl> viewTestResultScls = viewTestResultSclDao.queryAllByLimit(viewTestResultScl);
        Map viewTestResultScl1 = new HashMap();
        Double somatization = 0D;
        Double compel = 0D;
        Double interpersonal = 0D;
        Double depressed = 0D;
        Double anxiety = 0D;
        Double hostile = 0D;
        Double terror = 0D;
        Double bigoted = 0D;
        Double psychotic = 0D;
        Double sleepanddiet = 0D;
        int xx = 0;
        for (ViewTestResultScl testResultScl : viewTestResultScls) {
            somatization += testResultScl.getSomatization();
            compel += testResultScl.getCompel();
            interpersonal += testResultScl.getInterpersonal();
            depressed += testResultScl.getDepressed();
            anxiety += testResultScl.getAnxiety();
            hostile += testResultScl.getHostile();
            terror += testResultScl.getTerror();
            bigoted += testResultScl.getBigoted();
            psychotic += testResultScl.getPsychotic();
            sleepanddiet += testResultScl.getSleepanddiet();
            xx++;
        }
        viewTestResultScl1.put("somatization", somatization);
        viewTestResultScl1.put("compel", compel);
        viewTestResultScl1.put("interpersonal", interpersonal);
        viewTestResultScl1.put("depressed", depressed);
        viewTestResultScl1.put("anxiety", anxiety);
        viewTestResultScl1.put("hostile", hostile);
        viewTestResultScl1.put("terror", terror);
        viewTestResultScl1.put("bigoted", bigoted);
        viewTestResultScl1.put("psychotic", psychotic);
        viewTestResultScl1.put("sleepanddiet", sleepanddiet);
        viewTestResultScl1.put("sumpeople", xx);
        return viewTestResultScl1;
    }


    /**
     * @param id
     * @return
     * @description: 删除
     */

    @Override
    public boolean deleteById(int[] id) {
        return viewTestResultSclDao.deleteById(id);
    }

    @Override
    public boolean deleteByTesterId(int[] id) {
        return viewTestResultSclDao.deleteByTesterId(id);
    }

}
